# -*- codeing = utf-8 -*-
# @Time : 2021/2/24 10:29
# @Atuthor: 朱朱
# @File: 076递归函数.py
# @Software: PyCharm
""
"""
如果一个函数在内部不调用其它的函数，而是自己本身的话，这个函数就是递归函数。
"""
# 递归简单来说，就是函数内部自己调用自己
# 递归最重要的就是找到出口(停止的条件)
count = 0
def tell_story():
    global count
    count = count+1
    print('从前有座山')
    print('山上有个庙')
    print('庙里有个老和尚')
    print('还有一个小和尚')
    print('老和尚在个小和尚讲故事')
    print('故事的内容是')

    if count < 5:
        tell_story()
tell_story()
print('-----------------------------')
# 求 1 ~ n的和

# 使用递归求 n!  n!=n*(n-1)!
def factorial(n):
    if n == 0:
        return 1
    return n*factorial(n-1)


print(factorial(5))
print('---------------------------')
# 使用递归求斐波那契数列的第 n 个数字
# 1,1,2,3,5,8,13,21,34,55,89,144

def fibonacci(n):
    if n==1 or n==2:
        return 1
    return fibonacci(n-2)+fibonacci(n-1)

print(fibonacci(9))